﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using A_Shop.Models;
using System.ComponentModel.DataAnnotations;

namespace A_Shop.Controllers.Administrador
{
    public class MarcaForm
    {
        [Required]
        public int id { get; set; }
        [Required]
        public string nombre { get; set; }
        [Required]
        public string descripcion { get; set; }
        [Required]
        public string foto { get; set; }
    }
        public class MarcaController : Controller
        {
            private ContextDatos db = new ContextDatos();
            public dynamic viewModel;

            //
            // GET: /Marca/

            public ActionResult Index()
            {
                return View(db.Marcas.ToList());
            }

            //
            // GET: /Marca/Details/5

            public ActionResult Details(int id)
            {
                viewModel = db.Marcas.FirstOrDefault(t => t.id == id);
                return View(viewModel);
            }

            //
            // GET: /Marca/Create

            public ActionResult Create()
            {
                return View();
            }

            //
            // POST: /Marca/Create

            [HttpPost]
            [ValidateAntiForgeryToken]
            public ActionResult Create(MarcaForm marca)
            {
                if (ModelState.IsValid)
                {
                    Marca mar = new Marca();
                    mar.Nombre = marca.nombre;
                    mar.Descripcion = marca.descripcion;
                    mar.Foto = marca.foto;
                    db.Marcas.Add(mar);
                    db.SaveChanges();
                    return RedirectToAction("Index");
                }

                return View(marca);
            }

            //
            // GET: /Marca/Edit/5

            public ActionResult Edit(int id = 0)
            {
                Marca marca = db.Marcas.Find(id);
                if (marca == null)
                {
                    return HttpNotFound();
                }
                return View(marca);
            }

            //
            // POST: /Marca/Edit/5

            [HttpPost]
            [ValidateAntiForgeryToken]
            public ActionResult Edit(MarcaForm marca)
            {
                if (ModelState.IsValid)
                {
                    Marca m = db.Marcas.Find(marca.id);
                    m.Nombre = marca.nombre;
                    m.Descripcion = marca.descripcion;
                    m.Foto = marca.foto;
                    db.Entry(m).State = EntityState.Modified;
                    db.SaveChanges();
                    return RedirectToAction("Index");
                }
                return View(marca);
            }

            //
            // GET: /Marca/Delete/5

            public ActionResult Delete(int id = 0)
            {
                db.Marcas.Remove(db.Marcas.Find(id));
                db.SaveChanges();
                return RedirectToAction("Index");
            }


            protected override void Dispose(bool disposing)
            {
                db.Dispose();
                base.Dispose(disposing);
            }
        }
    }
